%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Key Decompositions
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Key Decompositions}

Our key decompositions of the system are iteration 1 and 2.



\subsubsection{SAB}
The first key decomposition is that of the overall SAB system in section \ref{sec:iteration_1} on page \pageref{sec:iteration_1}. The decomposition that was made here can be viewed in figure \ref{fig:It1_M2_componentdiag} on page \pageref{fig:It1_M2_componentdiag}. This is one of our key decompositions because we defined the core components of our system. The core banking functionalities are storage of data and processing of transactions. The processing of transactions is handled by the \emph{Transaction Processing System}. The storage of customer data is handled by the \emph{Account Database}, \emph{Notification Inbox}, \emph{Balance Database} and \emph{Transaction Database} components. The access to these data storage components is managed by the \emph{Customer Information} facade, \emph{Send Notification} facade and \emph{TPS Facade}. These facades make the system more modifiable. This is an important quality where we made heavy use of in developing the system.




\subsubsection{Transaction Processing System}
The second key decomposition is the decomposition of the \emph{Transaction Processing System} in section \ref{sec:iteration_2} on page \pageref{sec:iteration_2}. The decomposition that was made here can be viewed in figure \ref{fig:It2_P1_P3_componentdiag} on page \pageref{fig:It2_P1_P3_componentdiag}. This decomposition is important because it provides the core functionality of processing transactions, and implements the important quality that these transactions need to be processed on time. By providing the \emph{Transaction Scheduler} it is possible to take into account different transaction priorities. And by providing the \emph{Transaction Handler} component we offer the functionality to process transactions concurrently in a scalable way. Incoming transactions are gathered by the \emph{Transaction Broker} component, and outgoing transactions are send out through the \emph{Transaction Reply Router}. Deadlines are monitored by the \emph{Transaction Monitor}.